/*!
 * \file json_data_analyze.h
 *
 * \brief json 格式再次解析  thrift
 *
 * All Rights Reserved Copyright (C) 2014 broada,Co.,Ltd.\n
 *
 * \version 1.0
 * \author geyh
 * \date 2017/03/02
 *
 */

#ifndef APM_R4_JSON_DATA_ANALYZE_H
#define APM_R4_JSON_DATA_ANALYZE_H

#include "json_comm.h"

/*!
 * \brief   thrift json double 信息上报
 *
 * \arg     p_data_in               入力参数
 *          p_st_body_data          上报链表
 *          p_st_private            私有数据
 *          i_use_request           request/response
 *          p_prefix                前缀
 *
 * \return  FR_SUCC:成功
 *          FR_FAIL:失败
 *
 */
int frthrift_json_analyze(char *p_data_in, Frreport_body_data *p_st_body_data, L7session_json_private *p_st_private
                          , int i_use_request, char *p_prefix);
/*!
 * \brief   thrift json d格式判断
 *
 * \arg     p_data_in               入力参数
 *
 * \return  FR_YES:成功
 *          FR_NO:失败
 *
 */
int frthrift_data_detect(char *p_data_in);

/*!
 * \brief   thrift json 异步信息添加
 *
 * \arg     p_st_privata         私有数据
 *
 * \return  FR_SUCC:成功
 *          FR_FAIL:失败
 *
 */
int frjson_thrift_data_add(L7session_json_private *p_st_privata);

/*!
 * \brief   thrift json 异步信息添加
 *
 * \arg     p_st_privata         私有数据
 *
 * \return  FR_SUCC:成功
 *          FR_FAIL:失败
 *
 */
int frjson_thrift_data_set(L7session_json_private *p_st_privata);

/*!
 * \brief   thrift_data 链表销毁
 *
 * \arg     pp_private_data    再次解析 私有数据销毁
 *
 * \return  void
 *
 */
void frjson_thrift_private_free(void **pp_private_data);

/*!
 * \brief   thrift json 方向判断
 *
 * \arg     p_data_in               入力参数
 *
 * \return  FR_YES:成功
 *          FR_NO:失败
 *
 */
int frthrift_direction_detect(char *p_data_in);

#endif //APM_R4_JSON_DATA_ANALYZE_H
